package com.example.vue.sys.service;

import com.example.vue.comm.domain.ResultData;
import com.example.vue.sys.vo.MenuFormVo;

import java.util.Map;

/**
 * @author zhouxl
 * @DATE 2020/11/30
 * @descriptoin
 */
public interface SysMenuService {

    /**
     * 菜单的树结构信息
     *
     * @param params 查询参数
     * @return
     */
    ResultData menuTree(Map<String, Object> params);

    /**
     * 添加菜单
     *
     * @param menuForm 添加菜单的对象信息
     * @return
     */
    ResultData addMenu(MenuFormVo menuForm);

    /**
     * 查询菜单列表信息
     *
     * @param menuFormVo
     * @return
     */
    ResultData menuList(MenuFormVo menuFormVo);

    /**
     * 查询菜单信息
     *
     * @param params
     * @return
     */
    ResultData queryMenuById(Map<String, Object> params);

    /**
     * 保存菜单信息
     *
     * @param vo
     * @return
     */
    ResultData saveMenu(MenuFormVo vo);

    /**
     * 编辑保存菜单信息
     *
     * @param vo
     * @return
     */
    ResultData editMenu(MenuFormVo vo);

    /**
     * 删除菜单
     *
     * @param params
     * @return
     */
    Object deleteMenu(Map<String, Object> params);

    /**
     * 删除当前菜单及其下面所有的子菜单信息
     *
     * @param params
     * @return
     */
    Object deleteMenuList(Map<String, Object> params);
}
